1
สัญญาสถาปัตยกรรมคำสั่งและสถานะทางสถาปัตยกรรม
AI031Lesson 3
00:00

ที่ สถาปัตยกรรมชุดคำสั่ง (ISA) มีบทบาทเป็นระดับการสร้างภาพจำลองขั้นพื้นฐาน ระดับการสร้างภาพจำลอง และเป็นข้อตกลงทางการระหว่างซอฟต์แวร์กับฮาร์ดแวร์ แม้ว่าภาษาขั้นสูงอย่างภาษาซีจะซ่อนความซับซ้อนไว้ แต่สถาปัตยกรรมชุดคำสั่ง (ISA) จะเปิดเผยให้เห็นถึง สถานะทางสถาปัตยกรรม—คือการกำหนดค่าที่แน่นอนของเรจิสเตอร์และหน่วยความจำของโปรเซสเซอร์

1. สถานะทางสถาปัตยกรรม

โปรเซสเซอร์แบบ x86-64 กำหนดสถานะของตนเองผ่านองค์ประกอบหลักหลายประการ:

  • โปรแกรมเคาน์เตอร์ (%rip): เก็บที่อยู่ของคำสั่งถัดไป
  • ไฟล์เรจิสเตอร์จำนวนเต็ม: เรจิสเตอร์ทั่วไป 16 ตัว (เช่น %rax, %rbx) เก็บค่า 64 บิต
  • รหัสเงื่อนไข: แฟล็ก (ZF, SF, CF, OF) สำหรับการควบคุมลำดับการทำงาน
  • เรจิสเตอร์เวกเตอร์: เช่น เรจิสเตอร์ YMM (256 บิต) สำหรับการดำเนินการแบบ SIMD

2. การสร้างภาพจำลองหน่วยความจำ

รหัสเครื่องมองเห็นหน่วยความจำเป็นอาร์เรย์ขนาดใหญ่ที่ ระบุโดยไบต์แม้ว่า x86-64 จะรองรับที่อยู่เสมือน 64 บิต แต่การใช้งานในปัจจุบันมักใช้พื้นที่ที่อยู่ 48 บิต ($2^{48}$ ไบต์) เราจัดประเภทขนาดข้อมูลเป็น คำ (16 บิต), คู่คำ (32 บิต) และ สี่คำ (64 บิต)

โปรเซสเซอร์ (สถานะ)%rip (PC)เรจิสเตอร์ (%rax..)รหัสเงื่อนไขสัญญาสถาปัตยกรรมคำสั่งmovq, ret, leaqหน่วยความจำเสมือน0xFFFF... (สแตก)0x0000... (โค้ด)

3. การพัฒนาและการเข้ากันได้

ขับเคลื่อนโดย กฎของมูร์อินเทลได้พัฒนาจากรุ่น 8086 ถึง คอร์ไอ 7 แฮสวิลสถาปัตยกรรมชุดคำสั่ง (ISA) ทำให้มั่นใจว่า การเข้ากันได้ย้อนหลังทำให้โค้ดเครื่องรุ่นเก่าสามารถทำงานบนฮาร์ดแวร์รุ่นใหม่ที่มีหลายคอร์และซับซ้อนได้

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>